<!DOCTYPE html>
<html lang="en-US">
    <head>
        <title>CSS::Tiny - Read/Write .css files with as little code as possible - metacpan.org</title>
        <link rel="preload" as="fetch" href="https://metacpan.org/account/login_status" crossorigin="anonymous" />
        <link href="https://metacpan.org/_assets/b8ccceeed47a0652049703d99326a9cea4933443.css" rel="stylesheet" type="text/css">
        <script src="https://metacpan.org/_assets/6bfedafe2d7caa915b7d84f61b45936818e3242e.js" type="text/javascript" defer></script>
        <link rel="alternate" type="application/rss+xml" title="Recent CPAN Uploads of CSS-Tiny - MetaCPAN" href="https://metacpan.org/dist/CSS-Tiny/releases.rss" />
        <link rel="canonical" href="./CSS::Tiny.html" />
        <meta name="description" content="Read/Write .css files with as little code as possible" />
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
        <link rel="shortcut icon" href="https://metacpan.org/static/icons/favicon.ico">
        <link rel="apple-touch-icon" sizes="152x152" href="https://metacpan.org/static/icons/apple-touch-icon.png">
        <link rel="search" href="https://metacpan.org/static/opensearch.xml" type="application/opensearchdescription+xml" title="MetaCPAN">
        <script>
          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

          (function(skey, ga_id){
            ga('create', ga_id, {
              siteSpeedSampleRate : 100,
              storage             : 'none',
              clientId            : localStorage.getItem(skey)
            });
            ga(function(tracker) {
              localStorage.setItem(skey, tracker.get('clientId'));
            });
            ga('send', 'pageview');
          })('ga:clientId', 'UA-27829474-1');
        </script>
<meta name="twitter:card"        content="summary" />
<meta name="twitter:url"         content="https://metacpan.org/pod/CSS::Tiny" />
<meta name="twitter:title"       content="CSS::Tiny" />
<meta name="twitter:description" content="Read/Write .css files with as little code as possible" />
<meta name="twitter:site"        content="metacpan" />
    </head>
    <body>
        <nav class="navbar navbar-default" role="navigation">
            <div class="header-logo-large hidden-xs">
              <a href="https://metacpan.org/" tabindex="0">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#logo" />
                </svg>
              </a>
            </div>
            <div class="header-logo-icon visible-xs">
              <a href="https://metacpan.org/">
                <svg class="logo" aria-label="MetaCPAN">
                  <use class="logo" href="/static/images/metacpan-logo.svg#dots" />
                </svg>
              </a>
            </div>
            <ul class="nav navbar-nav menu-items hidden-xs hidden-sm">
              <li><a href="https://metacpan.org/about">About</a></li>
              <li><a href="https://metacpan.org/about/sponsors">Sponsor</a></li>
              <li><a href="https://grep.metacpan.org/">grep::cpan</a></li>
              <li><a href="https://metacpan.org/recent">Recent</a></li>
              <li><a href="https://metacpan.org/about/faq">FAQ</a></li>
              <li><a href="https://metacpan.org/tools">Tools</a></li>
              <li><a href="https://fastapi.metacpan.org/">API</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <button type="button" class="searchbar-btn visible-xs visible-sm">
                    <i class="fa fa-search button-fa-icon"></i>
                </button>
                <form action="https://metacpan.org/search" class="searchbar-form visible-md visible-lg search-form form-horizontal">
                   <input type="hidden" name="size" id="metacpan_search-size" value="20">
                  <div class="form-group">
                      <div class="search-group">
                        <i class="fa fa-search"></i>
                        <input type="text" name="q" placeholder="Search the CPAN" size="41" autocorrect="off" autocapitalize="off" spellcheck="false" id="metacpan_search-input" class="form-control" value="">
                      </div>
                  </div>
                </form>
                    <li class="icon-slidepanel visible-xs visible-sm">
                      <button data-toggle="slidepanel" data-target=".slidepanel">
                        <span class="button-fa-icon">
                          <i class="fa fa-bars slidepanel-open"></i>
                          <i class="fa fa-times slidepanel-close"></i>
                        </span>
                      </button>
                    </li>
                <form action="https://metacpan.org/account/logout" method="POST" id="metacpan-logout"></form>
                <li class="dropdown logged_in" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon logged-in-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li><a href="https://metacpan.org/account/identities">Identities</a></li>
                        <li><a href="https://metacpan.org/account/profile">Profile</a></li>
                        <li><a href="https://metacpan.org/account/favorite/list">Favorites</a></li>
                        <li>
                            <a href="./CSS::Tiny.html#" type="button" onclick="$('#metacpan-logout').submit(); return false">
                              Logout
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_out" style="display: none;">
                    <button type="button" class="dropdown-toggle" data-toggle="dropdown">
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                      <i class="fas fa-chevron-down"></i>
                    </button>
                    <ul class="dropdown-menu">
                        <li>
                            <a href="https://metacpan.org/login/github">
                                <i class="fab fa-github fa-fw"></i>
                                GitHub
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/twitter">
                                <i class="fab fa-twitter fa-fw"></i>
                                Twitter
                            </a>
                        </li>
                        <li>
                            <a href="https://metacpan.org/login/google">
                                <i class="fab fa-google fa-fw"></i>
                                Google
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown logged_placeholder">
                    <button>
                      <i class="fa fa-user button-fa-icon" aria-hidden="true"></i>
                    </button>
                </li>
            </ul>
        </nav>
        <div class="page-content ">
          <!--
          <div class="top-notify-banner">
            <i class="fas fa-info-circle"></i>
          </div>
          -->
          <nav class="sidebar">
            <div class="slidepanel">
              <ul class="nav-list ">
    <li class="nav-header no-margin-top">
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The date that this version of CSS-Tiny was released.">
      <span class="relatize">10 Mar 2016 19:09:37 UTC</span>
    </li>
  <li>
    Distribution: <a href="https://metacpan.org/dist/CSS-Tiny">CSS-Tiny</a>
  </li>
  <li>
    Module version: 1.20
  </li>
  <li>
    <a data-keyboard-shortcut="g s" href="https://metacpan.org/dist/CSS-Tiny/source/lib/CSS/Tiny.pm">Source</a>
    (<a href="https://metacpan.org/dist/CSS-Tiny/source/lib/CSS/Tiny.pm?raw=1">raw</a>)
  </li>
  <li>
    <a data-keyboard-shortcut="g b" href="https://metacpan.org/dist/CSS-Tiny/source/lib/CSS">Browse</a>
    (<a href="https://metacpan.org/dist/CSS-Tiny/source/lib/CSS?raw=1">raw</a>)
  </li>
    <li>
      <a data-keyboard-shortcut="g c" href="https://metacpan.org/dist/CSS-Tiny/changes">Changes</a>
    </li>
    <li>
      <a class="nopopup" href="https://metacpan.org/dist/CSS-Tiny/contribute">How to Contribute</a>
    </li>
    <li>
        <a rel="noopener nofollow" data-keyboard-shortcut="g r" href="https://github.com/chorny/CSS-Tiny">Repository</a>
    </li>
    <li>
      <a rel="noopener nofollow" data-keyboard-shortcut="g i" href="https://rt.cpan.org/Public/Dist/Display.html?Name=CSS-Tiny">Issues</a>
      (1)
    </li>
    <li>
      <a rel="noopener nofollow" href="http://matrix.cpantesters.org/?dist=CSS-Tiny+1.20" title="Matrix">Testers</a>
        <span title="(pass / fail / na)">(<a rel="noopener nofollow" href="https://www.cpantesters.org/distro/C/CSS-Tiny.html?oncpan=1&amp;distmat=1&amp;version=1.20&amp;grade=2" style="color: #090">132</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/C/CSS-Tiny.html?oncpan=1&amp;distmat=1&amp;version=1.20&amp;grade=3" style="color: #900">0</a> / <a rel="noopener nofollow" href="https://www.cpantesters.org/distro/C/CSS-Tiny.html?oncpan=1&amp;distmat=1&amp;version=1.20&amp;grade=4">0</a>)</span>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpants.cpanauthors.org/release/CHORNY/CSS-Tiny-1.20">Kwalitee</a>
    </li>
    <li>
      <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The # people with an indexing permission on CSS-Tiny who have released something to CPAN in the last 2 years (i.e. the # people likely able to release critical fixes in a timely manner)">
      Bus factor: 1
      </div>
    </li>
    <li>
      <a rel="noopener nofollow" href="http://cpancover.com/latest/CSS-Tiny-1.20/index.html">87.40% Coverage </a>
    </li>
    <li>
      License: perl_5
    </li>
    <li>
      Perl: v5.5.0
    </li>
    <li class="nav-header">Activity</li>
    <li>
<div class="activity-graph">
    <img src="https://metacpan.org/dist/CSS-Tiny/activity.svg?res=month" />
    <div class="comment">24 month</div>
</div>
    </li>
    <li class="nav-header">Tools</li>
    <li>
      <a itemprop="downloadUrl" href="https://cpan.metacpan.org/authors/id/C/CH/CHORNY/CSS-Tiny-1.20.tar.gz">
      Download (<span itemprop="fileSize">8.5KB</span>)</a>
    </li>
    <li>
      <a href="https://explorer.metacpan.org/?url=%2Fmodule%2FCHORNY%2FCSS-Tiny-1.20%2Flib%2FCSS%2FTiny.pm">
        MetaCPAN Explorer
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/CSS-Tiny/permissions">
        Permissions
      </a>
    </li>
    <li>
      <a href="https://metacpan.org/dist/CSS-Tiny/releases.rss">
        Subscribe to distribution
      </a>
    </li>
    <li>
      <button class="btn btn-link" data-toggle="modal" data-target="#metacpan_install-instructions-dialog">
        Install Instructions
      </button>
    </li>
    <li>
      <form action="https://metacpan.org/search">
        <input type="hidden" name="q" value="dist:CSS-Tiny">
        <input type="search" name="q" placeholder="Search distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
      </form>
    </li>
    <li>
      <form action="https://grep.metacpan.org/search">
        <input type="hidden" name="qd" value="CSS-Tiny">
        <input type="hidden" name="source" value="metacpan">
        <input type="search" name="q" placeholder="grep distribution" class="form-control tool-bar-form">
        <input type="submit" style="display: none">
     </form>
    </li>
    <li class="version-jump">
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/CSS/Tiny.pm&#39;" class="form-control tool-bar-form">
  <option disabled selected>Jump to version</option>
<option
  disabled
  value="CHORNY/CSS-Tiny-1.20"
>1.20
  (CHORNY on 2016-03-10)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.19"
>1.19
  (ADAMK on 2010-09-03)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.18"
>1.18
  (ADAMK on 2010-09-03)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.17"
>1.17
  (ADAMK on 2010-07-04)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.15"
>1.15
  (ADAMK on 2007-11-02)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.14"
>1.14
  (ADAMK on 2006-09-04)</option>
<optgroup label="BackPAN">'
<option
  
  value="ADAMK/CSS-Tiny-1.11"
>1.11
  (ADAMK on 2005-10-21)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.10"
>1.10
  (ADAMK on 2005-05-26)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.09"
>1.09
  (ADAMK on 2005-03-24)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.08"
>1.08
  (ADAMK on 2005-02-18)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.07"
>1.07
  (ADAMK on 2005-02-15)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.06"
>1.06
  (ADAMK on 2005-01-16)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.05"
>1.05
  (ADAMK on 2004-07-14)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.04"
>1.04
  (ADAMK on 2004-01-07)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.03"
>1.03
  (ADAMK on 2003-12-20)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.02"
>1.02
  (ADAMK on 2003-08-13)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.01"
>1.01
  (ADAMK on 2003-07-14)</option>
<option
  
  value="ADAMK/CSS-Tiny-1"
>1
  (ADAMK on 2002-12-21)</option>
<option
  
  value="ADAMK/CSS-Tiny-0.3"
>0.3
  (ADAMK on 2002-12-09)</option>
<option
  
  value="ADAMK/CSS-Tiny-0.2"
>0.2
  (ADAMK on 2002-11-28)</option>
<option
  
  value="ADAMK/CSS-Tiny-0.1"
>0.1
  (ADAMK on 2002-11-26)</option>
</optgroup>
</select>
    </li>
    <li class="version-diff">
<select onchange="document.location.href='/release/CHORNY/CSS-Tiny-1.20/diff/' + encodeURIComponent(this.value) + '/lib/CSS/Tiny.pm'
" class="form-control tool-bar-form">
  <option disabled selected>Diff with version</option>
<option
  disabled
  value="CHORNY/CSS-Tiny-1.20"
>1.20
  (CHORNY on 2016-03-10)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.19"
>1.19
  (ADAMK on 2010-09-03)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.18"
>1.18
  (ADAMK on 2010-09-03)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.17"
>1.17
  (ADAMK on 2010-07-04)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.15"
>1.15
  (ADAMK on 2007-11-02)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.14"
>1.14
  (ADAMK on 2006-09-04)</option>
<optgroup label="BackPAN">'
<option
  
  value="ADAMK/CSS-Tiny-1.11"
>1.11
  (ADAMK on 2005-10-21)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.10"
>1.10
  (ADAMK on 2005-05-26)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.09"
>1.09
  (ADAMK on 2005-03-24)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.08"
>1.08
  (ADAMK on 2005-02-18)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.07"
>1.07
  (ADAMK on 2005-02-15)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.06"
>1.06
  (ADAMK on 2005-01-16)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.05"
>1.05
  (ADAMK on 2004-07-14)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.04"
>1.04
  (ADAMK on 2004-01-07)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.03"
>1.03
  (ADAMK on 2003-12-20)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.02"
>1.02
  (ADAMK on 2003-08-13)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.01"
>1.01
  (ADAMK on 2003-07-14)</option>
<option
  
  value="ADAMK/CSS-Tiny-1"
>1
  (ADAMK on 2002-12-21)</option>
<option
  
  value="ADAMK/CSS-Tiny-0.3"
>0.3
  (ADAMK on 2002-12-09)</option>
<option
  
  value="ADAMK/CSS-Tiny-0.2"
>0.2
  (ADAMK on 2002-11-28)</option>
<option
  
  value="ADAMK/CSS-Tiny-0.1"
>0.1
  (ADAMK on 2002-11-26)</option>
</optgroup>
</select>
    </li>

    <li>
<ul class="dependencies">
  <li class="nav-header">Dependencies</li>
  <li><i class="ttip" title="dynamic_config enabled">unknown</i></li>
  <li>
    <hr>
  </li>
  <li>
    <a href="https://metacpan.org/module/CSS::Tiny/requires">Reverse dependencies</a>
  </li>
  <li>
    <a href="http://deps.cpantesters.org/?module=CSS%3A%3ATiny">CPAN Testers List</a>
  </li>
  <li>
    <a href="https://cpandeps.grinnz.com/?dist=CSS-Tiny">Dependency graph</a>
  </li>
</ul>
    </li>
    <li class="nav-header">Permalinks</li>
    <li>
      <a href="https://metacpan.org/release/CHORNY/CSS-Tiny-1.20/view/lib/CSS/Tiny.pm">This version</a>
    </li>
    <li>
      <a href="./CSS::Tiny.html">Latest version</a>
    </li>
    <li>
<div class="plussers">
<div class="nav-header">++ed by:</div>
<div>
    2 non-PAUSE users
</div>
</div>
    </li>
    <li>
<div id="metacpan_contributors">
  <div>
    <button class="btn-link"
      onclick="$(this).hide(); $('#metacpan_contributors ul').slideDown(); return false;"
    >and 1 contributors</button>
  </div>
  <ul style="display: none">
    <li class="contributor"
      data-cpan-author="ADAMK"
      data-contrib-email="adamk@cpan.org"
    >
      <a href="https://metacpan.org/author/ADAMK" class="cpan-author">
      <img class="gravatar" width="20" height="20" src="https://www.gravatar.com/avatar/884124d0169f41668fb3f948b2ba8b0a?d=identicon&amp;s=20" />
      Adam Kennedy
      </a>
    </li>
  </ul>
</div>
    </li>
              </ul>
            </div>
          </nav>
          <div class="content-navigation">
<div class="breadcrumbs">
  <span>
    <a data-keyboard-shortcut="g a" rel="author" href="https://metacpan.org/author/CHORNY" class="author-name">Alexandr Ciornii</a>
  </span>
  <span>&nbsp;/&nbsp;</span>
  <div class="release dist-release status-latest maturity-released">
    <span class="dropdown"><b class="caret"></b></span>
<select onchange="document.location.href=&#39;/release/&#39;+this.value+&#39;/view/lib/CSS/Tiny.pm&#39;" class="">
<option
  selected
  value="CHORNY/CSS-Tiny-1.20"
>1.20
  (CHORNY on 2016-03-10)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.19"
>1.19
  (ADAMK on 2010-09-03)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.18"
>1.18
  (ADAMK on 2010-09-03)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.17"
>1.17
  (ADAMK on 2010-07-04)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.15"
>1.15
  (ADAMK on 2007-11-02)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.14"
>1.14
  (ADAMK on 2006-09-04)</option>
<optgroup label="BackPAN">'
<option
  
  value="ADAMK/CSS-Tiny-1.11"
>1.11
  (ADAMK on 2005-10-21)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.10"
>1.10
  (ADAMK on 2005-05-26)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.09"
>1.09
  (ADAMK on 2005-03-24)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.08"
>1.08
  (ADAMK on 2005-02-18)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.07"
>1.07
  (ADAMK on 2005-02-15)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.06"
>1.06
  (ADAMK on 2005-01-16)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.05"
>1.05
  (ADAMK on 2004-07-14)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.04"
>1.04
  (ADAMK on 2004-01-07)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.03"
>1.03
  (ADAMK on 2003-12-20)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.02"
>1.02
  (ADAMK on 2003-08-13)</option>
<option
  
  value="ADAMK/CSS-Tiny-1.01"
>1.01
  (ADAMK on 2003-07-14)</option>
<option
  
  value="ADAMK/CSS-Tiny-1"
>1
  (ADAMK on 2002-12-21)</option>
<option
  
  value="ADAMK/CSS-Tiny-0.3"
>0.3
  (ADAMK on 2002-12-09)</option>
<option
  
  value="ADAMK/CSS-Tiny-0.2"
>0.2
  (ADAMK on 2002-11-28)</option>
<option
  
  value="ADAMK/CSS-Tiny-0.1"
>0.1
  (ADAMK on 2002-11-26)</option>
</optgroup>
</select>
    <a data-keyboard-shortcut="g d" class="release-name" href="https://metacpan.org/dist/CSS-Tiny">CSS-Tiny-1.20</a>
  </div>
<span class="river-gauge-gauge">
  <svg width="24px"
       height="15px"
       version="1.1"
       xmlns="http://www.w3.org/2000/svg"
       xmlns:xlink="http://www.w3.org/1999/xlink">

    <g>
      <title>        River stage two &#10;
          • 7 direct dependents &#10;          • 31 total dependents
      </title>

      <rect x="0"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="5"  y="0" width="4" height="15" fill="#7ea3f2" />
      <rect x="10"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="15"  y="0" width="4" height="15" fill="#e4e2e2" />
      <rect x="20"  y="0" width="4" height="15" fill="#e4e2e2" />
    </g>
  </svg>

</span>
<div id="CSS-Tiny-fav" class="logged_in">
<form action="https://metacpan.org/account/favorite/add" style="display: inline" onsubmit="return favDistribution(this)">
    <input type="hidden" name="remove" value="0">
    <input type="hidden" name="release" value="CSS-Tiny-1.20">
    <input type="hidden" name="author" value="CHORNY">
    <input type="hidden" name="distribution" value="CSS-Tiny">
    <button type="submit" class="favorite highlight"><span>2</span> ++</button>
</form>
</div>
<div class="logged_out">
<a href="./CSS::Tiny.html" onclick="alert('Please sign in to add favorites'); return false" class="favorite highlight">
<span>2</span> ++</a>
</div>
   / <span>CSS::Tiny</span>
</div>
          </div>
          <main class="content">


<nav class="toc">
  <div class="toc-header"><strong>Contents</strong></div>
<ul>
  <li><a href="./CSS::Tiny.html#NAME">NAME</a></li>
  <li><a href="./CSS::Tiny.html#SYNOPSIS">SYNOPSIS</a></li>
  <li><a href="./CSS::Tiny.html#DESCRIPTION">DESCRIPTION</a>
    <ul>
      <li><a href="./CSS::Tiny.html#CSS-Feature-Support">CSS Feature Support</a></li>
    </ul>
  </li>
  <li><a href="./CSS::Tiny.html#CSS-FILE-SYNTAX">CSS FILE SYNTAX</a></li>
  <li><a href="./CSS::Tiny.html#METHODS">METHODS</a>
    <ul>
      <li><a href="./CSS::Tiny.html#new">new</a></li>
      <li><a href="./CSS::Tiny.html#read-$filename">read $filename</a></li>
      <li><a href="./CSS::Tiny.html#read_string-$string">read_string $string</a></li>
      <li><a href="./CSS::Tiny.html#clone">clone</a></li>
      <li><a href="./CSS::Tiny.html#write_string">write_string</a></li>
      <li><a href="./CSS::Tiny.html#write">write</a></li>
      <li><a href="./CSS::Tiny.html#html">html</a></li>
      <li><a href="./CSS::Tiny.html#xhtml">xhtml</a></li>
      <li><a href="./CSS::Tiny.html#errstr">errstr</a></li>
    </ul>
  </li>
  <li><a href="./CSS::Tiny.html#CAVEATS">CAVEATS</a>
    <ul>
      <li><a href="./CSS::Tiny.html#CSS-Rule-Order">CSS Rule Order</a></li>
    </ul>
  </li>
  <li><a href="./CSS::Tiny.html#SUPPORT">SUPPORT</a></li>
  <li><a href="./CSS::Tiny.html#AUTHOR">AUTHOR</a></li>
  <li><a href="./CSS::Tiny.html#SEE-ALSO">SEE ALSO</a></li>
  <li><a href="./CSS::Tiny.html#COPYRIGHT">COPYRIGHT</a></li>
</ul></nav>
<div class="pod anchors">
<h1 id="NAME">NAME</h1>

<p>CSS::Tiny - Read/Write .css files with as little code as possible</p>

<h1 id="SYNOPSIS">SYNOPSIS</h1>

<pre><code>    # In your .css file
    H1 { color: blue }
    H2 { color: red; font-family: Arial }
    .this, .that { color: yellow }
    
    # In your program
    use CSS::Tiny;
    
    # Create a CSS stylesheet
    my $CSS = CSS::Tiny-&gt;new();
    
    # Open a CSS stylesheet
    $CSS = CSS::Tiny-&gt;read( &#39;style.css&#39; );
    
    # Reading properties
    my $header_color = $CSS-&gt;{H1}-&gt;{color};
    my $header2_hashref = $CSS-&gt;{H2};
    my $this_color = $CSS-&gt;{&#39;.this&#39;}-&gt;{color};
    my $that_color = $CSS-&gt;{&#39;.that&#39;}-&gt;{color};
    
    # Changing styles and properties
    $CSS-&gt;{&#39;.newstyle&#39;} = { color =&gt; &#39;#FFFFFF&#39; }; # Add a style
    $CSS-&gt;{H1}-&gt;{color} = &#39;black&#39;;                # Change a property
    delete $CSS-&gt;{H2};                            # Delete a style
    
    # Save a CSS stylesheet
    $CSS-&gt;write( &#39;style.css&#39; );
    
    # Get the CSS as a &lt;style&gt;...&lt;/style&gt; tag
    $CSS-&gt;html;</code></pre>

<h1 id="DESCRIPTION">DESCRIPTION</h1>

<p><code>CSS::Tiny</code> is a perl class to read and write .css stylesheets with as little code as possible, reducing load time and memory overhead. CSS.pm requires about 2.6 meg or ram to load, which is a large amount of overhead if you only want to do trivial things. Memory usage is normally scoffed at in Perl, but in my opinion should be at least kept in mind.</p>

<p>This module is primarily for reading and writing simple files, and anything we write shouldn&#39;t need to have documentation/comments. If you need something with more power, move up to CSS.pm. With the increasing complexity of CSS, this is becoming more common, but many situations can still live with simple CSS files.</p>

<h2 id="CSS-Feature-Support"><a id="CSS"></a>CSS Feature Support</h2>

<p><code>CSS::Tiny</code> supports grouped styles of the form <code>this, that { color: blue }</code> correctly when reading, ungrouping them into the hash structure. However, it will not restore the grouping should you write the file back out. In this case, an entry in the original file of the form</p>

<pre><code>    H1, H2 { color: blue }</code></pre>

<p>would become</p>

<pre><code>    H1 { color: blue }
    H2 { color: blue }</code></pre>

<p><code>CSS::Tiny</code> handles nested styles of the form <code>P EM { color: red }</code> in reads and writes correctly, making the property available in the form</p>

<pre><code>    $CSS-&gt;{&#39;P EM&#39;}-&gt;{color}</code></pre>

<p><code>CSS::Tiny</code> ignores comments of the form <code>/* comment */</code> on read correctly, however these comments will not be written back out to the file.</p>

<h1 id="CSS-FILE-SYNTAX"><a id="CSS1"></a>CSS FILE SYNTAX</h1>

<p>Files are written in a relatively human-orientated form, as follows:</p>

<pre><code>    H1 {
        color: blue;
    }
    .this {
        color: red;
        font-size: 10px;
    }
    P EM {
        color: yellow;
    }</code></pre>

<p>When reading and writing, all property descriptors, for example <code>color</code> and <code>font-size</code> in the example above, are converted to lower case. As an example, take the following CSS.</p>

<pre><code>    P {
        Font-Family: Verdana;
    }</code></pre>

<p>To get the value <code>&#39;Verdana&#39;</code> from the object <code>$CSS</code>, you should reference the key <code>$CSS-&gt;{P}-&gt;{font-family}</code>.</p>

<h1 id="METHODS">METHODS</h1>

<h2 id="new">new</h2>

<p>The constructor <code>new</code> creates and returns an empty <code>CSS::Tiny</code> object.</p>

<h2 id="read-$filename"><a id="read"></a><a id="read--filename"></a>read $filename</h2>

<p>The <code>read</code> constructor reads a CSS stylesheet, and returns a new <code>CSS::Tiny</code> object containing the properties in the file.</p>

<p>Returns the object on success, or <code>undef</code> on error.</p>

<h2 id="read_string-$string"><a id="read_string"></a><a id="read_string--string"></a>read_string $string</h2>

<p>The <code>read_string</code> constructor reads a CSS stylesheet from a string.</p>

<p>Returns the object on success, or <code>undef</code> on error.</p>

<h2 id="clone">clone</h2>

<p>The <code>clone</code> method creates an identical copy of an existing <code>CSS::Tiny</code> object.</p>

<h2 id="write_string">write_string</h2>

<p>Generates the stylesheet for the object and returns it as a string.</p>

<h2 id="write">write</h2>

<p>The <code>write $filename</code> generates the stylesheet for the properties, and writes it to disk. Returns true on success. Returns <code>undef</code> on error.</p>

<h2 id="html">html</h2>

<p>The <code>html</code> method generates the CSS, but wrapped in a <code>style</code> HTML tag, so that it can be dropped directly onto a HTML page.</p>

<h2 id="xhtml">xhtml</h2>

<p>The <code>html</code> method generates the CSS, but wrapped in a <code>style</code> XHTML tag, so that it can be dropped directly onto an XHTML page.</p>

<h2 id="errstr">errstr</h2>

<p>When an error occurs, you can retrieve the error message either from the <code>$CSS::Tiny::errstr</code> variable, or using the <code>errstr</code> method.</p>

<h1 id="CAVEATS">CAVEATS</h1>

<h2 id="CSS-Rule-Order"><a id="CSS2"></a>CSS Rule Order</h2>

<p>While the order of rules in CSS is important, this is one of the features that is sacrificed to keep things small and dependency-free. If you need to preserve order yourself, we recommend that you upgrade to the more powerful <a href="https://metacpan.org/pod/CSS">CSS</a> module.</p>

<p>If this is not possible in your case, alternatively it can be done with the help of another module such as <a href="./Tie::IxHash.html">Tie::IxHash</a>:</p>

<pre><code>    my $css = CSS::Tiny-&gt;new;
    tie %$css, &#39;Tie::IxHash&#39;;
    $css-&gt;read(&#39;style.css&#39;);</code></pre>

<p>Note: You will also need to remember to add the additional dependency to your code or module in this case.</p>

<h1 id="SUPPORT">SUPPORT</h1>

<p>Bugs should be reported via the CPAN bug tracker at</p>

<p><a href="http://rt.cpan.org/NoAuth/ReportBug.html?Queue=CSS-Tiny">http://rt.cpan.org/NoAuth/ReportBug.html?Queue=CSS-Tiny</a></p>

<p>For other issues, or commercial enhancement or support, contact the author.</p>

<h1 id="AUTHOR">AUTHOR</h1>

<p>Adam Kennedy &lt;adamk@cpan.org&gt;</p>

<h1 id="SEE-ALSO"><a id="SEE"></a>SEE ALSO</h1>

<p><a href="https://metacpan.org/pod/CSS">CSS</a>, <a href="http://www.w3.org/TR/REC-CSS1">http://www.w3.org/TR/REC-CSS1</a>, <a href="./Config::Tiny.html">Config::Tiny</a>, <a href="http://ali.as/">http://ali.as/</a></p>

<h1 id="COPYRIGHT">COPYRIGHT</h1>

<p>Copyright 2002 - 2010 Adam Kennedy.</p>

<p>This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.</p>

<p>The full text of the license can be found in the LICENSE file included with this module.</p></div>

<div id="metacpan_install-instructions-dialog" class="modal fade">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title">Module Install Instructions</h4>
      </div>
      <div class="modal-body">
        <p>To install CSS::Tiny, copy and paste the appropriate command in to your terminal.</p>
        <p><a href="https://metacpan.org/dist/App-cpanminus/view/bin/cpanm">cpanm</a></p>
        <pre><code>cpanm CSS::Tiny</code></pre>
        <p><a href="https://metacpan.org/pod/CPAN">CPAN shell</a></p>
        <pre><code>perl -MCPAN -e shell
install CSS::Tiny</code></pre>
        <p>For more information on module installation, please visit <a href="https://www.cpan.org/modules/INSTALL.html">the detailed CPAN module installation guide</a>.</p>
      </div>
      <div class="modal-footer">
        <a href="./CSS::Tiny.html#" data-dismiss="modal" class="btn">Close</a>
      </div>
    </div>
  </div>
</div>
          </main>
          <div class="content-pagination">
          </div>
        </div>
        <footer class="footer">
          <div class="footer-container">
            <div class="footer-social">
              <div class="footer-link footer-logo">
                <a href="https://metacpan.org/">
                  <img src="https://metacpan.org/static/images/metacpan-logo.svg" alt="MetaCPAN" />
                </a>
              </div>
              <a class="footer-social-link" href="https://github.com/metacpan">
                <i class="fab fa-github-square"></i>
              </a>
              <a class="footer-social-link" href="https://fosstodon.org/@metacpan">
                <i class="fab fa-mastodon"></i>
              </a>
            </div>
            <div class="footer-links">
              <div class="footer-link">
                  <a href="https://metacpan.org/about">About</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/sponsors">Sponsor</a>
              </div>
              <div class="footer-link">
                  <a href="https://grep.metacpan.org">grep::cpan</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/recent">Recent</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/about/faq">FAQ</a>
              </div>
              <div class="footer-link">
                  <a href="https://metacpan.org/tools">Tools</a>
              </div>
              <div class="footer-link">
                  <a href="https://fastapi.metacpan.org/">API</a>
              </div>
              <div class="footer-link">
                  <a href="https://www.perl.org/">Perl.org</a>
              </div>
            </div>
            <div class="footer-sponsors">
              <a class="footer-sponsor-link" target="_blank" href="https://www.bytemark.co.uk/" rel="noopener">
                <img class="footer-sponsor-bytemark" src="https://metacpan.org/static/images/sponsors/bytemark_logo.svg" alt="Bytemark logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.liquidweb.com/" rel="noopener">
                <img class="footer-sponsor-liquidweb" src="https://metacpan.org/static/images/sponsors/liquidweb_logo.png" alt="liquidweb logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://deriv.com/careers/" rel="noopener">
                <img class="footer-sponsor-deriv" src="https://metacpan.org/static/images/sponsors/deriv.svg" alt="Deriv logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://geocode.xyz" rel="noopener">
                <img class="footer-sponsor-geocode" src="https://metacpan.org/static/images/sponsors/geocodelogo.svg" alt="Geocode logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://www.fastly.com/" rel="noopener">
                <img class="footer-sponsor-fastly" src="https://metacpan.org/static/images/sponsors/fastly_logo.svg" alt="Fastly logo">
              </a>
              <a class="footer-sponsor-link" target="_blank" href="https://opencagedata.com" rel="noopener">
                <img class="footer-sponsor-opencage" src="https://metacpan.org/static/images/sponsors/open-cage.svg" alt="OpenCage logo">
              </a>
            </div>
          </div>
        </footer>
        <div class="modal fade" tabindex="-1" role="dialog" id="metacpan_keyboard-shortcuts">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Keyboard Shortcuts</h4>
              </div>
              <div class="modal-body row">
<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Global</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>s</kbd>
        </td>
        <td>Focus search bar</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>?</kbd>
        </td>
        <td>Bring up this help dialog</td>
      </tr>
    </tbody>
  </table>

  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>GitHub</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>p</kbd>
        </td>
        <td>Go to pull requests</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>go to github issues (only if github is preferred repository)</td>
      </tr>
    </tbody>
  </table>
</div>

<div class="col-md-6">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>POD</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>a</kbd>
        </td>
        <td>Go to author</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>c</kbd>
        </td>
        <td>Go to changes</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>i</kbd>
        </td>
        <td>Go to issues</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>d</kbd>
        </td>
        <td>Go to dist</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>r</kbd>
        </td>
        <td>Go to repository/SCM</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>s</kbd>
        </td>
        <td>Go to source</td>
      </tr>
      <tr>
        <td class="keys">
          <kbd>g</kbd> <kbd>b</kbd>
        </td>
        <td>Go to file browse</td>
      </tr>

    </tbody>
  </table>
</div>

<div class="col-md-12">
  <table class="table keyboard-shortcuts">
    <thead>
      <tr>
        <th></th>
        <th>Search terms</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><em>module:</em> (e.g. <a href="https://metacpan.org/search?q=module%3APlugin">module:Plugin</a>)</td>
      </tr>
      <tr>
        <td><em>distribution:</em> (e.g. <a href="https://metacpan.org/search?q=distribution%3ADancer+auth">distribution:Dancer auth</a>)</td>
      </tr>
      <tr>
        <td><em>author:</em> (e.g. <a href="https://metacpan.org/search?q=author%3ASONGMU+Redis">author:SONGMU Redis</a>)</td>
      </tr>
      <tr>
        <td><em>version:</em> (e.g. <a href="https://metacpan.org/search?q=version%3A1.00">version:1.00</a>)</td>
      </tr>
    </tbody>
  </table>
</div>
              </div>
              <div class="modal-footer"></div>
            </div>
          </div>
        </div>
    </body>
</html>
